package controle;

import java.util.List;

import model.Jogador;
import model.Mesa;
import model.Peca;

public class Regra {
	
	
	public boolean jogaNaCabecaEsquerda(Peca pEsquerda, List<Peca> pecasJogador){
		boolean retorno = false;
		for (Peca peca : pecasJogador) {
			if(pEsquerda.getvLeft() == peca.getvLeft() | pEsquerda.getvLeft() == peca.getvRigth()){
				retorno = true;
				break;
			}
		}
		return retorno;
	}
	
	public boolean jogaNaCabecaEsquerda(Peca pEsquerda, Peca peca){
		boolean retorno = false;
		if(pEsquerda.getvLeft() == peca.getvLeft() | pEsquerda.getvLeft() == peca.getvRigth()){
			retorno = true;
		}
		return retorno;
	}


	public boolean jogaNaCabecaDireita(Peca pDireita, List<Peca> pecasJogador){
		boolean retorno = false;
		for (Peca peca : pecasJogador) {
			if(pDireita.getvRigth() == peca.getvLeft() | pDireita.getvRigth() == peca.getvRigth()){
				retorno = true;
				break;
			}
		}
		return retorno;
	}
	
	public boolean jogaNaCabecaDireita(Peca pDireita, Peca peca){
		boolean retorno = false;
		if(pDireita.getvRigth() == peca.getvLeft() | pDireita.getvRigth() == peca.getvRigth()){
			retorno = true;
		}
		return retorno;
	}
	
	
	public void jogaPecaCabecaEsquerda(Peca pEsquerda,Peca p, Mesa mesa){
		if(pEsquerda.getvLeft() == p.getvRigth()){
			mesa.getPecasJogadas().add(0,p);
		}else{
			p.giraPeca();
			mesa.getPecasJogadas().add(0,p);
		}
	}
	
	
	public void jogaPecaCabecaDireita(Peca pDireita,Peca p, Mesa mesa){
		if(pDireita.getvRigth() == p.getvLeft()){
			mesa.getPecasJogadas().add(mesa.getPecasJogadas().size(),p);
		}else{
			p.giraPeca();
			mesa.getPecasJogadas().add(mesa.getPecasJogadas().size(),p);
		}
	}
	
	public boolean todosPassaram(int quantQuePassaram){
		return quantQuePassaram == 4;
	}
	
}
